'''
function:
根据预设输入的时间，提醒今天或者这周要关注什么
'''

import time,datetime

# 输入重要事件以及对应的时间
events = ['2020-01-30 03:00美国至1月29日美联储利率决定上限(%)',
          '2020-03-19 02:00美国至3月18日美联储利率决定上限(%)',
          '2020-04-30 02:00美国至4月29日美联储利率决定上限(%)', '2020-06-11 02:00美国至6月10日美联储利率决定上限(%)', '2020-07-30 02:00美国至7月29日美联储利率决定上限(%)',  '2020-09-17 02:00美国至9月16日美联储利率决定上限(%)', '2020-11-06 03:00美国至11月5日美联储利率决定上限(%)', '2020-12-17 03:00美国至12月16日美联储利率决定上限(%)',
          '2020-12-12欧央行利率','2020-10-24欧央行利率','2020-09-12欧央行利率','2020-07-25欧央行利率','2020-06-06欧央行利率','2020-04-10欧央行利率','2020-03-07欧央行利率','2020-01-24欧央行利率',
          

    ]


def get_week_day(date): #计算出来是星期几
  week_day_dict = {
    0 : '星期一',
    1 : '星期二',
    2 : '星期三',
    3 : '星期四',
    4 : '星期五',
    5 : '星期六',
    6 : '星期天',
  }
  day = date.weekday()
  return week_day_dict[day]

#print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))  #各种反应时间的格式
#print(get_week_day(datetime.datetime.now()))  #反应今天是星期几的方式
#print(time.strftime("%d", time.localtime()))

def is_it_3rd_friday(day = datetime.datetime.now()):
    if day.weekday() == 5:
        #print(day.day/7)  #测试
        if day.day/7 >= 2:
            return True

# 根据时间算出今天要提醒哪个事件
def compare_time(time2): # basic compare 2 days, show if they are the same day.
    if str(time.strftime("%Y-%m-%d", time.localtime())) == str(time2[0:10]):
        print('今天需要关注：\n')
        print(time2)
    elif int(time2[0:4])==int(time.strftime("%Y", time.localtime())):
        if str(time.strftime("%Y%m", time.localtime()))[5:6] == str(time2[6:7]):
            if int(time2[9:10])-int((time.strftime("%Y%m%d", time.localtime()))[7:8])==1:
                print('明天需要关注的是:\n'+time2)
    else:
        pass


def reminder():
    for event in events:
        compare_time(event)

def qihuojiesuan_reminder():
   for i in range(6):
       if is_it_3rd_friday(datetime.datetime.now()+datetime.timedelta(i)):
           print("本周5是股指期货交割日")

def is_it_15th_20th(day = datetime.datetime.now()):
    if day.day>=15 and day.day<=20:
        return True

def huangjinjiaoge_reminder():
   for i in range(6):
       if is_it_15th_20th(datetime.datetime.now()+datetime.timedelta(i)):
           print("15-20号是铜、锌、铝、天然橡胶、钢材、黄金的交割日")
           break
       
def is_it_25th_31th(day = datetime.datetime.now()):
    if day.day>=25 and day.day<=31:
        return True

def yuexian_reminder(): #月线提醒
   for i in range(6):
       if is_it_25th_31th(datetime.datetime.now()+datetime.timedelta(i)):
           print("马上收月线了，控制风险")
           break


'''
这个合约都有约定的最后交易日（就是最后履行合约的日子，一般是合约月份的第三个周五，遇国家法定假日顺延），这就是期指的交割日。约定的最后履约时间到了，买卖双方必须平仓（解除合约）或交割（现金结算）。

二、不同的品种是有差别的，有的品种交割日期是一天，有的是几天，主要品种的最后交易日和交割日期如下：

1、铜、锌、铝、天然橡胶、钢材、黄金。

（1）最后交易日：合约交割月份的15日。

（2）交割日期：最后交易日后连续五个工作日。2、燃油。

（1）最后交易日：合约交割月份前一月份的最后一个交易日。

（2）交割日期：最后交易日后连续五个工作日。3、白糖、棉花、PTA、菜籽油。

（1）最后交易日：合约交割月份的第10个交易日。

（2）交割日期：合约交割月份的第12个交易日。4、大豆1号、大豆2号、豆粕、豆油。

（1）最后交易日：合约月份第十个交易日。

（2）交割日期：最后交易日分别为后（注意）七日、第三日、第四日。5、L、玉米、PVC、棕榈油。

（1）最后交易日：合约月份第十个交易日。

（2）交割日期：最后交易日分别为第二个交易日。
'''
